package com.zbkj.crmeb.statistics.service;

import com.zbkj.crmeb.statistics.response.*;

import java.util.List;
import java.util.Map;

/**
 * <p>
 * 首页统计
 * </p>
 *
 * @author Mr.Zhang
 * @since 2020-05-16
 */
public interface HomeService {

    /**
     * 多商户销售额
     *
     * @param merIds
     * @return
     */
    HomeRateResponse sales(List<Integer> merIds);

    /**
     * 多商户用户统计
     *
     * @param merIds
     * @return
     */
    HomeRateResponse user(List<Integer> merIds);

    /**
     * 多商户小程序访问次数
     *
     * @param merIds
     * @return
     */
    HomeRateResponse views(List<Integer> merIds);

    /**
     * 多商户订单统计
     *
     * @param merIds
     * @return
     */
    HomeRateResponse order(List<Integer> merIds);

    /**
     * 多商户用户曲线
     *
     * @param merIds
     * @return
     */
    Map<Object, Object> chartUser(List<Integer> merIds);

    /**
     * 多商户订单曲线
     *
     * @param merIds
     * @return
     */
    Map<String, Object> chartOrder(List<Integer> merIds);

    /**
     * 多商户用户购买统计
     *
     * @param merIds
     * @return
     */
    Map<String, Integer> chartUserBuy(List<Integer> merIds);

    /**
     * 多商户订单-周统计
     *
     * @param merIds
     * @return
     */
    Map<String, Object> chartOrderInWeek(List<Integer> merIds);

    /**
     * 多商户订单-月统计
     *
     * @param merIds
     * @return
     */
    Map<String, Object> chartOrderInMonth(List<Integer> merIds);

    /**
     * 多商户订单-年统计
     *
     * @param merIds
     * @return
     */
    Map<String, Object> chartOrderInYear(List<Integer> merIds);

    /**
     * 商家小程序今日数据
     *
     * @param merId
     * @return
     */
    List<OrderTodayResponse> orderToday(Integer merId);

    /**
     * 商家小程序客户管理
     *
     * @param merId
     * @return
     */
    CustomerManagementResponse customerManagement(Integer merId);

    SupplierSalesResponse supplierSales(Integer merId);

    List<SupplierRankingResponse> brandRanking(String dateLimit, Integer merId);

    List<SupplierRankingResponse> productRanking(String dateLimit, Integer merId);

}
